/**
 * 获取省份的方法
 * @param eProvince 省份的选择器（select元素）
 * @param province 选中省份（ID）（可选）
 * @param eCity 城市的选择器 （select元素）（可选 如果填city的话必选）
 * @param city 选中城市（ID）（可选）
 * @param eCounty 县的选择器（可选）
 * @param county 选中县的id （可选）
 */
function getProvince(eProvince, province, eCity, city, eCounty, county) {
    getJson("/area/getProvince", null, 'GET', function (result) {
        buildSelect(eProvince, result, 'areaname', 'areaname', province);
        if (city) {
            getCity(province, eCity, city, eCounty, county);
        }
    })
}

/**
 * 获取城市的方法
 * @param province 选中的省
 * @param eCity 城市的选择器 （select元素）
 * @param city 选中城市（ID）（可选）
 * @param eCounty 县选择器
 * @param county 选中县的ID
 */
function getCity(province, eCity, city, eCounty, county) {
    getJson("/area/getCity", {"province": province}, 'GET', function (result) {
        buildSelect(eCity, result, 'areaname', 'areaname', city);
        if (county) {
            getCounty(province, city, eCounty, county);
        }
    })
}

/**
 * 获取县 区的方法
 * @param city 选中的市
 * @param eCounty 区县选择器
 * @param county 选中区县的id
 */
function getCounty(province, city, eCounty, county) {
    getJson("/area/getCounty", {"province": province, "city": city}, 'GET', function (result) {
        buildSelect(eCounty, result, 'areaname', 'areaname', county);
        if (result.length > 0) {
            $(eCounty).show();
            $('#validationCustom08').css("height", 100 + "px");
            $('#validationCustom09').css("height", 100 + "px");
        }
    })
}

/**
 * 构建权限区域下拉列表
 * @param list 下拉列表的选择器
 * @param data 权限区域数据 只需要id和name
 * @param area 选中的权限区域 要求数组
 */
function buildAreaList(list, data, area) {
    buildList(list, data, function (li, item) {
        $(li).addClass('list-group-item');
        let div = createElement('div', li, null, null);
        $(div).addClass('custom-control');
        $(div).addClass('custom-checkbox');
        let input = createElement('input', div, null, item['id']);
        $(input).addClass('custom-control-input');
        $(input).attr('type', 'checkbox');
        $(input).attr('name', 'companyList');
        $(input).attr('id', item['id']);
        $(input).attr('eName', item['name']);
        if (area && contain(area, item['id'])) {
            $(input).attr('checked', 'checked');
        }
        let label = createElement('label', div, item['name'], null);
        $(label).addClass('custom-control-label');
        $(label).attr('for', item['id']);
    });
    let li = createElement('li', list);
    $(li).addClass('list-group-item');
    let btnConfirm = createElement('button', li, '确认选择');
    let btnSelectAll = createElement('button', li, '全选');
    let btnUnselectAll = createElement('button', li, '全不选');
    let btnCancel = createElement('button', li, '取消');
    $(btnConfirm).addClass('btn').addClass('btn-sm').addClass('btn-info');
    $(btnSelectAll).addClass('btn').addClass('btn-sm').addClass('btn-secondary').addClass('ml-2');
    $(btnUnselectAll).addClass('btn').addClass('btn-sm').addClass('btn-secondary').addClass('ml-2');
    $(btnCancel).addClass('btn').addClass('btn-sm').addClass('btn-light').addClass('ml-2');
    $(btnConfirm).attr('type', 'button');
    $(btnSelectAll).attr('type', 'button');
    $(btnUnselectAll).attr('type', 'button');
    $(btnCancel).attr('type', 'button');
    $(btnConfirm).click(function () {
        confirmSelection()
    });
    $(btnSelectAll).click(function () {
        selectAll();
    });
    $(btnUnselectAll).click(function () {
        unselectAll();
    });
    $(btnCancel).click(function () {
        cancelSelection();
    });
}

// 检查数组中是否包含目标值
function contain(arr, target) {
    for (let item of arr) {
        if (item == target) {
            return true;
        }
    }
    return false;
}